#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
#include <time.h>
#include <stdint.h>
#include <math.h>
#include <rtthread.h>
#include "sys.h"
#include "scp.h"

#define SYMBOL_GLOBALS
#include "printf.h"	  
#undef SYMBOL_GLOBALS


//* 加入以下代码,支持printf函数,而不需要选择use MicroLIB	  
#if 1
#pragma import(__use_no_semihosting)             
//标准库需要的支持函数                 
struct __FILE 
{ 
	int handle; 

}; 

FILE __stdout; 

//* 定义_sys_exit()以避免使用半主机模式    
void _sys_exit(int x) 
{ 
	x = x; 
} 
//* 重定义fputc函数 
int fputc(int ch, FILE *f)
{      
	while((USART2->SR&0X40) == 0); //*确保上一个发送完毕再发送下一个
  USART2->DR = (u8)ch;      
	return ch;
}

void printf_init(void)
{
  SCP2Init(115200, DATABIT_8, STOPBITS_1, PARITYTP_NO, FLOWCTLTP_NO);		//* 作为printf()函数的控制台输出口
}

#endif   
